#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    //注意：在指针前面一定要加上类作用说明符， 说明该指针指向那个类的成员函数
    void (Widget::*Signal_p)(QString) = &Widget::MySignal; //定义函数指针指向信号
    // void (Widget::*Slot_p)(QString) = &Widget::MySlot; //定义函数指针指向槽函数
    void (Widget::*Slot_p)() = &Widget::MySlot; //定义函数指针指向槽函数

    connect(this, Signal_p, this, Slot_p); //连接信号与槽

    EmitSignal(); //发射信号
    ui->setupUi(this);
}

void Widget::MySlot()
{
    qDebug()<< "MySlot() 被调用";
}

// void Widget::MySlot(QString str)
// {
//     str= "Hello";
//     qDebug() << str;
// }

// void Widget::MySlot(QString str)
// {
//     qDebug() << "MySlot(QString str) 被调用";
// }

void Widget::EmitSignal()
{
    QString str= "Hello";
    emit MySignal(str);
}

Widget::~Widget()
{
    delete ui;
}
